#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>

int main()
{
    pid_t ret = fork();
    //父进程通过fork来创建子进程，此过程会出现两种情况
    //1.子进程创建成功：父进程会接收到子进程的pid，子进程会接收到0值
    //2.子进程创建失败：返回-1
    
    if(0 > ret)//若ret小于0，则意味子进程创建失败
    {
        perror("fork error!\n");
        return 1;
    }

    else if(0 == ret)
    {
        while(1)
        {
             //子进程
             printf("我是子进程：ret=%d Pid=%d PPid=%d\n",ret,getpid(),getppid());
             sleep(3);
             break;
         }
        exit(0);
    }

    else 
    {
        while(1)
        {
             //父进程
             printf("我是父进程：ret=%d Pid=%d PPid=%d\n",ret,getpid(),getppid());
             sleep(1);
         }
    }
    return 0;
}
